home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / tools / cd2pcmt / source.lzh / cd2pcm.h < prev    next >
Text File  |  1997-09-30  |  6KB  |  188 lines

  1. /*    #define DEBUG    0    */
  2. /*    #define DEBUG1    0    */
  3.  
  4. #define DEF_SCSI_ID    6        /* デフォルトSCSI-ID */
  5.  
  6. #define cd_演奏開始    0
  7. #define cd_演奏開始_ALL    1
  8. #define cd_演奏中断    2
  9. #define cd_演奏再開    3
  10. #define cd_演奏情報    4
  11. #define cd_演奏リスト    5
  12. #define cd_取り込み    6
  13. #define cd_取り込み2    7
  14. #define cd_演奏開始2    8
  15.  
  16. //#define CDPCM_LEN    44100*4        /* CDPCM 1秒分のワークレングス */
  17. //#define PCM_LEN        15600*2        /* PCM 1秒分のワークレングス */
  18. //#define ADPCM_LEN    15600/2        /* ADPCM 1秒分ワークレングス */
  19.  
  20. #define CONVERT_PCMR    1        /* 44.1KHz 16BIT モノラル R */
  21. #define CONVERT_PCML    2        /* 44.1KHz 16BIT モノラル L */
  22. #define CONVERT_PCMM    3        /* 44.1KHz 16BIT ミキシング */
  23. #define CONVERT_PCM15    4        /* pcm15 mode */
  24. #define CONVERT_WAVE    5        /* 44.1KHz 16BIT ステレオ intel */
  25. #define CONVERT_PCMA    6        /* 44.1KHz ADPCM */
  26. #define CONVERT_A88    7        /* 88.2KHz ADPCM */
  27.  
  28. #define CONVERT_R    (0)
  29. #define    CONVERT_L    (1)
  30. #define CONVERT_M    (2)
  31. #define    CONVERT_AVE_R    (3)
  32. #define    CONVERT_AVE_L    (4)
  33. #define    CONVERT_AVE_M    (5)
  34.  
  35. #define    PF        0x10        /* ページフォーマット */
  36. #define SP        0x01        /* セーブパラメータ */
  37.  
  38. #define    CD_CDU561    0        /* SONY CDU-561 */
  39. #define    TOSHIBATYPE    1        /* SONY CDU-561 */
  40. #define    SONYTYPE    0        /* TOSHIBA */
  41.  
  42. #define    CUP "\x0b"
  43. //#define    CFC "\x1b[0K"
  44. #define    CFC "\x1b[0J"
  45.  
  46.  
  47. /*------------------------------*/
  48. /*    関数 prototype        */
  49. /*------------------------------*/
  50. void cd_play( int, int );
  51. void cd_play2( int, int, int );
  52. void cd_play_all( void );
  53. void cd_play_pause( void );
  54. void cd_play_resume( void );
  55. void cd_play_inf( void );
  56. void cd_play_list( void );
  57. void cdda2pcm( int, int, int );
  58.  
  59. int  RedTOC(int *, int *, int * );
  60. int  scsi_cmd( int , unsigned char *, int , unsigned char * );
  61. int  Music_inf(int , int* );
  62. int  PlyDsk( int, int );
  63. int  StpDsk( void );
  64. int  Resume( void );
  65. int  ReadSub( unsigned char * );
  66. void cd2pcm_help( void );
  67.  
  68. int  bin2time( int );
  69. int  time2bin( int );
  70.  
  71. int  adr2time( int );
  72.  
  73. void    convert( int );
  74. void    cdda_error( int );
  75. void    AbortDisp( void );
  76.  
  77. /*------------------------------*/
  78. /*    構造体            */
  79. /*------------------------------*/
  80. typedef struct {
  81.     int    fg;            /* 状態 0x11 演奏中,0x12 演奏中断 */
  82.     int    track_no;        /* 曲番号 */
  83.     int    time;            /* 現在の演奏時間 */
  84.     int    address;        /* 演奏アドレス */
  85. } PLYINF;
  86.  
  87. /*-------------------------------------------
  88.         以下CDC用
  89. --------------------------------------------*/
  90.  
  91. int    CDC_CHK();
  92. int    CDC_CALL();
  93. struct CDC_STAT_PTR {
  94.     short    CDIN;        //    0;NoCD 1;SetCD
  95.     int    PLAYINF;    //    状態  0x11;演奏中,0x12;一時停止,0x13;停止
  96.     int    TRAKNO;        //    曲番号
  97.     int    PLAYTIME;    //    演奏中の曲の経過時間 (MSF型)
  98.     int    CDLONG;        //    CD絶対総 経過時間 (MSF型)
  99.     int    TRAKLONG;    //    現在演奏曲のながさ (MSF型)
  100.     void*    CDNAME;        //    CD名アドレス
  101.     void*    TRAKNAME;    //    曲名アドレス
  102.     void*    LEDSTR;        //    LED文字アドレス    -----以下LED部に表示される物
  103.     int    LEDTRAK;    //    LED数値 曲番号
  104.     int    LEDNO;        //    LED数値 1以上;プログラムナンバー
  105.                 //        0;表示無し -1;MAX= -2;INP= -3;Vol
  106.     int    LEDTIME;    //    LED数値 タイム (MSF型)
  107.     int    LEDSTAT;    //    LEDの状態
  108.                 //        ┌bit 0 ■:停止
  109.                 //        │bit 1 >:再生
  110.                 //        │bit 2 ||:一時停止
  111.                 //       イズレカ│bit 3 >>:早送り
  112.                 //        └bit 4 <<:巻き戻し
  113.                 //        ┌bit 5 ⊂:オート
  114.                 //        └bit 6 ◯:リピート
  115.                 //          bit 7 R:ランダム
  116.                 //          bit 8 P:メモリー
  117.                 //         (bit 9 B:BGM)
  118.     char    INKEYNUMH;    //    入力されている数値(上)
  119.     char    INKEYNUML;    //    入力されている数値(下)
  120.     short    LEDTIMEMODE;    //    LED数値 タイム のモード
  121.                 //        0;ノーマル
  122.                 //        1;リバース
  123.                 //        2;トータル
  124.                 //        3;トータルリバース
  125.     short    VOLUME;        //    Vol数値
  126.     short    MASTERVOL;    //    MasterVol数値(0ならボリューム機能無し)
  127. };
  128. struct CDC_TRACKS_PTR {
  129.     short    CDIN;        //    0;NoCD 1;SetCD
  130.     int    CDCWORKS;    //    CDC.xの最大記憶数(以下,記憶数)
  131.     int    CDCTRAK;    //    CDの曲数
  132.     int    CDLONG;        //    CDの全演奏時間 (MSF型)
  133.     int    CDLISTFG;    //    CDCLISTにあったか -1ならあった
  134.     char    CDNAME[40];    //    CD名        40-1文字
  135.     char    WORKS[0];    //
  136.             //    .dsb.b    (記憶数)*40    各曲の名前    40-1文字
  137.             //    .dsb.l    (記憶数)    各曲の演奏時間+拡張曲名flag
  138.             //    .dsb.l    (記憶数)    各曲のスタート時間
  139.             //                (↑最上位ビットが立っ
  140.             //                ていれば データトラック)
  141. };
  142. struct CDC_ATRACK_PTR *CDC_ATRACK(int TN);
  143. struct    CDC_ATRACK_PTR {
  144.     char    *NAME;        //    各曲の名前    最大 39 文字
  145.     int    LONG;        //    各曲の演奏時間+拡張曲名flag
  146.     int    START;        //    各曲のスタート時間
  147.                 //        (↑最上位ビットが立っ
  148.                 //        ていれば データトラック)
  149. };
  150. struct    CDC_PROG_PTR
  151. {
  152.     short        PROGLONG;    //    プログラム数
  153.     unsigned char    PROGNUM[100];    //    曲ナンバー
  154. };
  155. #define    CDC_VERSION()        CDC_CALL(0x00)
  156. #define    CDC_INIT()        CDC_CALL(0x01)
  157. #define    CDC_STAT()        (struct CDC_STAT_PTR *)CDC_CALL(0x02)
  158. #define    CDC_TRACKS()        (struct CDC_TRACKS_PTR *)CDC_CALL(0x03)
  159. #define    CDC_SCSI_CHK()        CDC_CALL(0x04)
  160. #define    CDC_RELED()        CDC_CALL(0x05)
  161. #define    CDC_INKEY(KB)        CDC_CALL(0x07,KB)
  162. #define    CDC_PROG()        (struct CDC_PROG_PTR*)CDC_CALL(0x08)
  163. #define    CDC_PROGIN(NUM,PGN)    CDC_CALL(0x09,NUM,PGN)
  164. #define    CDC_PROGOUT()        CDC_CALL(0x0A)
  165. #define    CDC_PROGTIME()        (int*)CDC_CALL(0x0F)
  166. #define    CDC_PLAY(ST,ET)        CDC_CALL(0x10,ST,ET)
  167. #define    CDC_PAUSE()        CDC_CALL(0x11)
  168. #define    CDC_RESUME()        CDC_CALL(0x12)
  169. #define    CDC_MVPLAY(OFS)        CDC_CALL(0x13,OFS)
  170. #define    CDC_BGM(T1,T2,T3,T4)    CDC_CALL(0x14,T1,T2,T3,T4)
  171. #define    CDC_STOP()        CDC_CALL(0x15)
  172. #define    PLAYWAIT()        CDC_CALL(0x1D)
  173. #define    CDC_VOL(VL)        CDC_CALL(0x1E,VL)
  174. #define    CDC_FADEOUT(SW)        CDC_CALL(0x1F,SW)
  175. #define    CDC_DRIVE()        CDC_CALL(0x30)
  176. #define    CDC_MODE(MD)        CDC_CALL(0x31,MD)
  177. #define    CDC_KEYMODE(MD)        CDC_CALL(0x32,MD)
  178. #define    CDC_LED(MD)        CDC_CALL(0x33,MD)
  179. #define    CDC_TIMING(TM)        CDC_CALL(0x34,TM)
  180. #define    CDC_POWER(MD)        CDC_CALL(0x35,MD)
  181. #define    CDC_TRACKMODE(MD)    CDC_CALL(0x36,MD)
  182. #define    CDC_KEYCANSEL(NK)    CDC_CALL(0x37,NK)
  183. #define    CDC_TIMELED(MD)        CDC_CALL(0x38,MD)
  184. #define    CDC_LEDXY()        CDC_CALL(0x39)
  185. #define    CDC_SCSIID()        CDC_CALL(0x3a)
  186. #define    CDC_EJEEMU()        CDC_CALL(0x3b)
  187. #define    CDC_CHGLUN(LN)        CDC_CALL(0x3c,LN)
  188.